from PublicReference.base import *

等级 = 100 + 5


class 职业主动技能(主动技能):
    攻击次数1 = 1
    data1 = []
    data2 = []
    data3 = []

    def 等效百分比(self, 武器类型):
        if self.等级 == 0:
            return 0
        else:
            总倍率 = 1
            if not self.data1 == []:
                总倍率 += self.攻击次数1 * self.data1[self.等级]
            if not self.data2 == []:
                总倍率 += self.攻击次数2 * self.data2[self.等级]
            if not self.data3 == []:
                总倍率 += self.攻击次数3 * self.data3[self.等级]
            总倍率 *= (1 + self.TP成长 * self.TP等级) * self.倍率
            return 总倍率


class 技能0(被动技能):
    名称 = '次元扭曲装置'
    所在等级 = 20
    等级上限 = 20
    基础等级 = 10

    def 加成倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        elif self.等级 <= 10:
            return round(1.05 + 0.01 * self.等级, 5)
        else:
            return round(1.15 + 0.02 * (self.等级-10), 5)


class 技能1(被动技能):
    名称 = '乖离虚无'
    所在等级 = 15
    等级上限 = 20
    基础等级 = 10
    关联技能 = ['次元虚影', '次元跃迁', '次元离子束', '次元坠落', '次元万花镜', '次元粒子风暴', '次元时空磁场', '次元粒子波',
            '次元思维聚爆', '次元奇点', '禁断之盛宴', '未明·次元崩坏']  # 次元系技能

    def 加成倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return round(1. + 0.015 * self.等级, 5)


class 技能2(被动技能):
    名称 = '虚空之力'
    所在等级 = 48
    等级上限 = 40
    基础等级 = 20

    def 加成倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return round(1.025 + 0.02 * self.等级, 5)


class 技能3(被动技能):
    名称 = '混沌源能石'
    所在等级 = 75
    等级上限 = 40
    基础等级 = 11

    def 加成倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return round(1.17 + 0.02 * self.等级, 5)


class 技能4(职业主动技能):
    名称 = '次元坠落'
    所在等级 = 15
    等级上限 = 60
    基础等级 = 1
    # 基础伤害
    攻击次数1 = 1

    data1 = [int(i*1.198) for i in [0, 444, 489, 534, 579, 624, 669, 714, 759, 804, 849, 894, 939, 984, 1029, 1074, 1119, 1165, 1210, 1255, 1300, 1345, 1390, 1435, 1480, 1525, 1570, 1615, 1660, 1705, 1750, 1795, 1840, 1885, 1930, 1976, 2021, 2066, 2111, 2156, 2201, 2246, 2291, 2336, 2381, 2426, 2471, 2516, 2561, 2606, 2651, 2696, 2741, 2787, 2832, 2877, 2922, 2967, 3012, 3057, 3102, 3147, 3192, 3237, 3282, 3327, 3372, 3417, 3462, 3507, 3552]]
    data2 = [int(i*1.198) for i in [0, 1508, 1661, 1814, 1967, 2120, 2273, 2426, 2579, 2732, 2885, 3038, 3191, 3344, 3497, 3650, 3803, 3956, 4109, 4262, 4415, 4568, 4722, 4875, 5028, 5181, 5334, 5487, 5640, 5793, 5946, 6099, 6252, 6405, 6558, 6711, 6864, 7017, 7170, 7323, 7476, 7629, 7782, 7935, 8088, 8241, 8394, 8547, 8700, 8853, 9006, 9159, 9312, 9465, 9618, 9771, 9924, 10078, 10231, 10384, 10537, 10690, 10843, 10996, 11149, 11302, 11455, 11608, 11761, 11914, 12067]]
    #基础 = 1549.886
    #成长 = 175.090

    攻击次数2 = 1
    # 30%概率触发箱子，额外伤害
    攻击次数3 = 1
    data3 = [int(i*1.198) for i in [0, 1901, 2093, 2286, 2479, 2672, 2865, 3058, 3251, 3443, 3636, 3829, 4022, 4215, 4408, 4601, 4793, 4986, 5179, 5372, 5565, 5758, 5951, 6143, 6336, 6529, 6722, 6915, 7108, 7301, 7493, 7686, 7879, 8072, 8265, 8458, 8651, 8843, 9036, 9229, 9422, 9615, 9808, 10001, 10193, 10386, 10579, 10772, 10965, 11158, 11351, 11543, 11736, 11929, 12122, 12315, 12508, 12701, 12893, 13086, 13279, 13472, 13665, 13858, 14051, 14243, 14436, 14629, 14822, 15015, 15208]]
    #基础2 = 1509.534
    #成长2 = 170.466
    TP成长 = 0.08
    TP上限 = 5
    CD = 4.


class 技能5(职业主动技能):
    名称 = '次元跃迁'
    所在等级 = 20
    等级上限 = 30
    基础等级 = 20
    data1 = [int(i*1.198) for i in [0, 5540, 6423, 7306, 8189, 9072, 9956, 10839, 11722, 12605, 13488, 14371, 15255, 16138, 17021, 17904, 18787, 19671, 20554, 21437, 22320, 23203, 24087, 24970, 25853, 26736, 27619, 28503, 29386, 30269, 31152]]
    #基础 = 4154.954
    #成长 = 788.050
    攻击次数1 = 1
    CD = 15.0
    CDdata = [15.0, 15.0, 14.8, 14.7, 14.5, 14.4, 14.2, 14.0, 13.9, 13.8, 13.6, 13.4, 13.3, 13.1, 13.0,
            12.8, 12.7, 12.5, 12.4, 12.2, 12.0, 11.9, 11.7, 11.6, 11.4, 11.3, 11.1, 11.0, 10.8, 10.7, 10.5]

    def 等效CD(self, 武器类型, 输出类型):
        if self.等级 <= 30:
            return round(self.CDdata[self.等级] / self.恢复, 1)
        else:
            return round(10.5 / self.恢复, 1)


class 技能6(职业主动技能):
    名称 = '次元虚影'
    所在等级 = 20
    等级上限 = 60
    基础等级 = 1
    data1 = [int(i*1.197) for i in [0, 2959, 3259, 3559, 3859, 4160, 4460, 4760, 5060, 5360, 5661, 5961, 6261, 6561, 6861, 7162, 7462, 7762, 8062, 8362, 8663, 8963, 9263, 9563, 9864, 10164, 10464, 10764, 11064, 11365, 11665, 11965, 12265, 12565, 12866, 13166, 13466, 13766, 14066, 14367, 14667, 14967, 15267, 15567, 15868, 16168, 16468, 16768, 17069, 17369, 17669, 17969, 18269, 18570, 18870, 19170, 19470, 19770, 20071, 20371, 20671, 20971, 21271, 21572, 21872, 22172, 22472, 22773, 23073, 23373, 23673]]
    #基础 = 2371.133
    #成长 = 267.834
    攻击次数1 = 1
    TP成长 = 0.10
    TP上限 = 5
    CD = 5.0


class 技能7(职业主动技能):
    名称 = '乖离禁忌之奈雅丽'
    备注 = '(近战普攻)'
    所在等级 = 20
    等级上限 = 60
    基础等级 = 5
    data1 = [int(i*1.197) for i in [0, 910, 1002, 1093, 1186, 1279, 1370, 1463, 1555, 1647, 1740, 1832, 1925, 2017, 2108, 2201, 2294, 2385, 2478, 2570, 2662, 2755, 2847, 2940, 3032, 3123, 3216, 3309, 3400, 3493, 3585, 3677, 3770, 3862, 3955, 4047, 4138, 4231, 4324, 4415, 4508, 4600, 4692, 4785, 4877, 4970, 5062, 5153, 5246, 5337, 5430, 5523, 5615, 5707, 5800, 5892, 5985, 6077, 6168, 6261, 6352, 6445, 6538, 6630, 6722, 6815, 6907, 7000, 7091, 7183, 7276]]
    #基础 = 729.662
    #成长 = 82.356
    攻击次数1 = 1
    CD = 60.
    TP成长 = 0.10
    TP上限 = 5
    关联技能 = ["所有"]
    自定义描述 = 1

    def 技能描述(self, 武器类型):
        return '独立攻击力增加{:.1%}'.format(self.独立攻击力倍率进图(武器类型)-1)

    def 独立攻击力倍率进图(self, 武器类型):
        return 1.10

    def 加成倍率(self, 武器类型):
        return 1.10


class 技能8(职业主动技能):
    名称 = '次元离子束'
    所在等级 = 25
    等级上限 = 60
    基础等级 = 41
    # 不强化
    data1 = [int(i*1.198) for i in [0, 659, 726, 793, 859, 926, 993, 1060, 1127, 1194, 1261, 1328, 1394, 1461, 1528, 1595, 1662, 1729, 1796, 1863, 1929, 1996, 2063, 2130, 2197, 2264, 2331, 2398, 2465, 2531, 2598, 2665, 2732, 2799, 2866, 2933, 3000, 3066, 3133, 3200, 3267, 3334, 3401, 3468, 3535, 3601, 3668, 3735, 3802, 3869, 3936, 4003, 4070, 4137, 4203, 4270, 4337, 4404, 4471, 4538, 4605, 4672, 4738, 4805, 4872, 4939, 5006, 5073, 5140, 5207, 5274]]
    #基础 = 3169.986
    #成长 = 357.901
    攻击次数1 = 6
    # 强化
    data2 = [int(i*1.198) for i in [0, 5121, 5641, 6160, 6680, 7199, 7719, 8239, 8758, 9278, 9797, 10317, 10836, 11356, 11876, 12395, 12915, 13434, 13954, 14474, 14993, 15513, 16032, 16552, 17071, 17591, 18111, 18630, 19150, 19669, 20189, 20709, 21228, 21748, 22267, 22787, 23306, 23826, 24346, 24865, 25385, 25904, 26424, 26944, 27463, 27983, 28502, 29022, 29541, 30061, 30581, 31100, 31620, 32139, 32659, 33178, 33698, 34218, 34737, 35257, 35776, 36296, 36816, 37335, 37855, 38374, 38894, 39413, 39933, 40453, 40972]]
    #基础2 = 4105.465
    #成长2 = 463.549
    攻击次数2 = 1
    TP成长 = 0.10
    TP上限 = 5
    CD = 7.


class 技能9(职业主动技能):
    名称 = '次元万花镜'
    所在等级 = 30
    等级上限 = 60
    基础等级 = 38
    # 不强化
    data1 = [int(i*1.198) for i in [0, 2017, 2222, 2427, 2631, 2836, 3041, 3245, 3450, 3655, 3859, 4064, 4269, 4473, 4678, 4883, 5087, 5292, 5497, 5702, 5906, 6111, 6316, 6520, 6725, 6930, 7134, 7339, 7544, 7748, 7953, 8158, 8362, 8567, 8772, 8977, 9181, 9386, 9591, 9795, 10000, 10205, 10409, 10614, 10819, 11023, 11228, 11433, 11638, 11842, 12047, 12252, 12456, 12661, 12866, 13070, 13275, 13480, 13684, 13889, 14094, 14298, 14503, 14708, 14913, 15117, 15322, 15527, 15731, 15936, 16141]]
    #基础 = 1616.371
    #成长 = 182.596
    攻击次数1 = 4
    # 强化
    data2 = [int(i*1.198) for i in [0, 1619, 1784, 1948, 2112, 2277, 2441, 2605, 2770, 2934, 3098, 3263, 3427, 3591, 3756, 3920, 4084, 4249, 4413, 4577, 4742, 4906, 5070, 5235, 5399, 5563, 5728, 5892, 6056, 6221, 6385, 6549, 6714, 6878, 7042, 7207, 7371, 7535, 7700, 7864, 8028, 8193, 8357, 8521, 8686, 8850, 9014, 9178, 9343, 9507, 9671, 9836, 10000, 10164, 10329, 10493, 10657, 10822, 10986, 11150, 11315, 11479, 11643, 11808, 11972, 12136, 12301, 12465, 12629, 12794, 12958]]
    #基础2 = 1297.444
    #成长2 = 146.593
    攻击次数2 = 4
    TP成长 = 0.10
    TP上限 = 5
    CD = 12.


class 技能10(职业主动技能):
    名称 = '乖离魅魔之舞'
    所在等级 = 30
    等级上限 = 60
    基础等级 = 38
    # 不强化
    data1 = [int(i*1.197) for i in [0, 212, 234, 256, 277, 299, 320, 342, 364, 385, 407, 428, 450, 472, 493, 515, 536, 558, 580, 601, 623, 644, 666, 688, 709, 731, 752, 774, 796, 817, 839, 861, 882, 904, 925, 947, 969, 990, 1012, 1033, 1055, 1077, 1098, 1120, 1141, 1163, 1185, 1206, 1228, 1249, 1271, 1293, 1314, 1336, 1357, 1379, 1401, 1422, 1444, 1465, 1487, 1509, 1530, 1552, 1573, 1595, 1617, 1638, 1660, 1681, 1703]]
    data2 = [int(i*1.197) for i in [0, 3622, 3989, 4357, 4724, 5092, 5459, 5827, 6194, 6562, 6929, 7297, 7664, 8032, 8399, 8767, 9134, 9502, 9869, 10237, 10604, 10972, 11339, 11707, 12074, 12442, 12809, 13177, 13544, 13912, 14279, 14647, 15014, 15382, 15749, 16117, 16484, 16852, 17219, 17587, 17954, 18322, 18689, 19057, 19424, 19792, 20159, 20527, 20894, 21262, 21629, 21997, 22364, 22732, 23099, 23467, 23834, 24202, 24569, 24937, 25304, 25672, 26039, 26407, 26774, 27142, 27509, 27877, 28244, 28612, 28979]]
    #基础 = 5470.737
    #成长 = 617.995
    攻击次数1 = 15
    攻击次数2 = 1
    CD = 10.
    TP成长 = 0.10
    TP上限 = 5


class 技能11(职业主动技能):
    名称 = '次元粒子风暴'
    所在等级 = 35
    等级上限 = 60
    基础等级 = 36
    # 不强化
    data1 = [int(i*1.259) for i in [0, 2860, 3150, 3440, 3730, 4020, 4311, 4601, 4891, 5181, 5471, 5762, 6052, 6342, 6632, 6922, 7212, 7503, 7793, 8083, 8373, 8663, 8953, 9244, 9534, 9824, 10114, 10404, 10694, 10985, 11275, 11565, 11855, 12145, 12436, 12726, 13016, 13306, 13596, 13886, 14177, 14467, 14757, 15047, 15337, 15627, 15918, 16208, 16498, 16788, 17078, 17368, 17659, 17949, 18239, 18529, 18819, 19110, 19400, 19690, 19980, 20270, 20560, 20851, 21141, 21431, 21721, 22011, 22301, 22592, 22882]]
    #基础 = 2314.648
    #成长 = 261.315
    攻击次数1 = 3
    # 强化
    data2 = [int(i*1.259) for i in [0, 10953, 12064, 13175, 14286, 15397, 16509, 17620, 18731, 19842, 20953, 22065, 23176, 24287, 25398, 26509, 27620, 28732, 29843, 30954, 32065, 33176, 34288, 35399, 36510, 37621, 38732, 39844, 40955, 42066, 43177, 44288, 45399, 46511, 47622, 48733, 49844, 50955, 52067, 53178, 54289, 55400, 56511, 57623, 58734, 59845, 60956, 62067, 63178, 64290, 65401, 66512, 67623, 68734, 69846, 70957, 72068, 73179, 74290, 75402, 76513, 77624, 78735, 79846, 80957, 82069, 83180, 84291, 85402, 86513, 87625]]
    #基础2 = 8863.268
    #成长2 = 1000.770
    攻击次数2 = 1
    CD = 16.
    是否有护石 = 1
    TP成长 = 0.10
    TP上限 = 5
    护石选项 = ['魔界', '圣痕']

    def 装备护石(self, x):
        if x == 0:
            self.倍率 *= 1.22
            self.攻击次数1 = 0
            self.攻击次数2 = 1
        elif x == 1:
            self.倍率 *= 1.31
            self.攻击次数1 = 0
            self.攻击次数2 = 1

    def 护石描述(self, x):
        if x == 0:
            temp = "<font color='#FF00FF'>边界之限</font>"
            temp += "<br><br><font color='#68D5ED'>"
            temp += "[次元 : 粒子风暴]<br>"
            temp += "以次元边界效果发动 (不消耗次元石)<br>"
            temp += "攻击力 +12%<br>"
            temp += "<br>-护石附加效果：<br>"
            temp += "爆炸速度 +50%<br>"
            temp += "冲击波范围 +10%<br>"
            temp += "攻击力 +10%"
        elif x == 1:
            temp = "<font color='#FF00FF'>边界之限</font>"
            temp += "<br><br><font color='#68D5ED'>"
            temp += "[次元 : 粒子风暴]<br>"
            temp += "以次元边界效果发动 (不消耗次元石)<br>"
            temp += "攻击力 +12%<br>"
            temp += "<br>-护石附加效果：<br>"
            temp += "爆炸速度 +50%<br>"
            temp += "冲击波范围 +10%<br>"
            temp += "攻击力 +19%"
        return temp


class 技能12(职业主动技能):
    名称 = '次元时空磁场'
    所在等级 = 35
    等级上限 = 60
    基础等级 = 36
    data1 = [int(i*1.198) for i in [0, 3857, 4248, 4639, 5031, 5422, 5813, 6205, 6596, 6987, 7379, 7770, 8161, 8553, 8944, 9335, 9727, 10118, 10509, 10901, 11292, 11683, 12075, 12466, 12857, 13249, 13640, 14031, 14423, 14814, 15205, 15597, 15988, 16379, 16771, 17162, 17553, 17945, 18336, 18727, 19118, 19510, 19901, 20292, 20684, 21075, 21466, 21858, 22249, 22640, 23032, 23423, 23814, 24206, 24597, 24988, 25380, 25771, 26162, 26554, 26945, 27336, 27728, 28119, 28510, 28902, 29293, 29684, 30076, 30467, 30858]]
    #基础 = 3092.684
    #成长 = 349.684
    攻击次数1 = 2
    TP成长 = 0.10
    TP上限 = 5
    CD = 15.


class 技能13(职业主动技能):
    名称 = '乖离异界蜂群'
    所在等级 = 40
    等级上限 = 60
    基础等级 = 33
    # 20 + 6
    data1 = [int(i*1.197) for i in [0, 797, 878, 959, 1040, 1121, 1202, 1283, 1364, 1445, 1526, 1607, 1688, 1769, 1849, 1930, 2011, 2092, 2173, 2254, 2335, 2416, 2497, 2578, 2659, 2740, 2821, 2902, 2983, 3064, 3144, 3225, 3306, 3387, 3468, 3549, 3630, 3711, 3792, 3873, 3954, 4035, 4116, 4197, 4278, 4359, 4439, 4520, 4601, 4682, 4763, 4844, 4925, 5006, 5087, 5168, 5249, 5330, 5411, 5492, 5573, 5653, 5734, 5815, 5896, 5977, 6058, 6139, 6220, 6301, 6382]]
    data2 = [int(i*1.197) for i in [0, 169, 186, 204, 221, 238, 255, 273, 290, 307, 324, 341, 359, 376, 393, 410, 428, 445, 462, 479, 496, 514, 531, 548, 565, 583, 600, 617, 634, 651, 669, 686, 703, 720, 738, 755, 772, 789, 806, 824, 841, 858, 875, 893, 910, 927, 944, 961, 979, 996, 1013, 1030, 1047, 1065, 1082, 1099, 1116, 1134, 1151, 1168, 1185, 1202, 1220, 1237, 1254, 1271, 1289, 1306, 1323, 1340, 1357]]
    #基础 = 13606.954
    #成长 = 1539.337
    攻击次数1 = 20
    攻击次数2 = 6
    CD = 25.
    是否有护石 = 1
    TP成长 = 0.10
    TP上限 = 5
    护石选项 = ['魔界', '圣痕']

    def 装备护石(self, x):
        if x == 0:
            self.攻击次数1 = 23
            self.倍率 *= 1.06
            self.CD *= 0.9
        elif x == 1:
            self.攻击次数1 = 23
            self.倍率 *= 1.14
            self.CD *= 0.9

    def 护石描述(self, x):
        if x == 0:
            temp = "<font color='#FF00FF'>苦痛引导</font>"
            temp += "<br><br><font color='#68D5ED'>"
            temp += "[乖离 : 异界蜂群]<br>"
            temp += "虫群数量 +3只<br>"
            temp += "奈雅丽在地图上时， 奈雅丽代替施放者发动技能 (不消耗HP)<br>"
            temp += "<br>-护石附加效果：<br>"
            temp += "蜂群登场时间 -0.5秒<br>"
            temp += "攻击力 +6%<br>"
            temp += "冷却时间 -10%"
        elif x == 1:
            temp = "<font color='#FF00FF'>苦痛引导</font>"
            temp += "<br><br><font color='#68D5ED'>"
            temp += "[乖离 : 异界蜂群]<br>"
            temp += "虫群数量 +3只<br>"
            temp += "奈雅丽在地图上时， 奈雅丽代替施放者发动技能 (不消耗HP)<br>"
            temp += "<br>-护石附加效果：<br>"
            temp += "蜂群登场时间 -0.5秒<br>"
            temp += "攻击力 +14%<br>"
            temp += "冷却时间 -10%"
        return temp


class 技能14(职业主动技能):
    名称 = '次元粒子波'
    所在等级 = 45
    等级上限 = 60
    基础等级 = 31
    # 一类裂隙
    data1 = [int(i*1.198) for i in [0, 1047, 1154, 1259, 1365, 1472, 1577, 1684, 1791, 1895, 2002, 2109, 2214, 2321, 2428, 2534, 2639, 2746, 2853, 2958, 3064, 3171, 3276, 3383, 3490, 3594, 3701, 3808, 3913, 4020, 4127, 4231, 4338, 4445, 4550, 4657, 4763, 4868, 4975, 5082, 5187, 5294, 5400, 5505, 5612, 5719, 5826, 5930, 6037, 6144, 6249, 6356, 6462, 6567, 6674, 6781, 6886, 6993, 7099, 7204, 7311, 7418, 7523, 7629, 7736, 7841, 7948, 8055, 8159, 8266, 8373]]
    #基础 = 868.110
    #成长 = 97.900
    攻击次数1 = 10
    # 二类裂隙
    data2 = [int(i*1.198) for i in [0, 742, 817, 893, 968, 1043, 1119, 1194, 1269, 1345, 1420, 1495, 1571, 1646, 1721, 1796, 1872, 1947, 2022, 2098, 2173, 2248, 2324, 2399, 2474, 2550, 2625, 2700, 2776, 2851, 2926, 3002, 3077, 3152, 3228, 3303, 3378, 3454, 3529, 3604, 3680, 3755, 3830, 3906, 3981, 4056, 4131, 4207, 4282, 4357, 4433, 4508, 4583, 4659, 4734, 4809, 4885, 4960, 5035, 5111, 5186, 5261, 5337, 5412, 5487, 5563, 5638, 5713, 5789, 5864, 5939]]
    #基础2 = 622.557
    #成长2 = 70.401
    攻击次数2 = 20
    CD = 40.
    是否有护石 = 1
    TP成长 = 0.10
    TP上限 = 5
    护石选项 = ['魔界', '圣痕']

    def 装备护石(self, x):
        if x == 0:
            self.倍率 *= 1.11
            self.倍率 *= 1.10
        elif x == 1:
            self.倍率 *= 1.10
            self.倍率 *= 1.17

    def 护石描述(self, x):
        if x == 0:
            temp = "<font color='#FF00FF'>重力爆炸</font>"
            temp += "<br><br><font color='#68D5ED'>"
            temp += "[次元 : 粒子波]<br>"
            temp += "施放技能时将敌人聚拢到中心<br>"
            temp += "攻击力 +11%<br>"
            temp += "<br>-护石附加效果：<br>"
            temp += "吸附范围 +20%<br>"
            temp += "技能中心点设置时空爆雷， 造成[次元 : 粒子波]总攻击力10%的伤害"
        elif x == 1:
            temp = "<font color='#FF00FF'>重力爆炸</font>"
            temp += "<br><br><font color='#68D5ED'>"
            temp += "[次元 : 粒子波]<br>"
            temp += "施放技能时将敌人聚拢到中心<br>"
            temp += "攻击力 +17%<br>"
            temp += "<br>-护石附加效果：<br>"
            temp += "吸附范围 +20%<br>"
            temp += "技能中心点设置时空爆雷， 造成[次元 : 粒子波]总攻击力10%的伤害"
        return temp


class 技能15(职业主动技能):
    名称 = '乖离扭曲之恐惧'
    所在等级 = 50
    等级上限 = 40
    基础等级 = 12
    # 出现
    data1 = [int(i*1.211) for i in [0, 6430, 7921, 9412, 10903, 12394, 13885, 15377, 16868, 18359, 19850, 21341, 22832, 24323, 25814, 27305, 28796, 30288, 31779, 33270, 34761, 36252, 37743, 39234, 40725, 42216, 43708, 45199, 46690, 48181, 49672, 51163, 52654, 54145, 55636, 57127, 58619, 60110, 61601, 63092, 64583, 66074, 67565, 69056, 70547, 72039, 73530, 75021, 76512, 78003, 79494, 80985, 82476, 83967, 85458, 86950, 88441, 89932, 91423, 92914, 94405, 95896, 97387, 98878, 100370, 101861, 103352, 104843, 106334, 107825, 109316]]
    #基础 = 4458.014
    #成长 = 1345.666
    攻击次数1 = 1
    # 触须
    data2 = [int(i*1.211) for i in [0, 1397, 1722, 2046, 2370, 2694, 3018, 3342, 3666, 3991, 4315, 4639, 4963, 5287, 5611, 5936, 6260, 6584, 6908, 7232, 7556, 7880, 8205, 8529, 8853, 9177, 9501, 9825, 10150, 10474, 10798, 11122, 11446, 11770, 12094, 12419, 12743, 13067, 13391, 13715, 14039, 14364, 14688, 15012, 15336, 15660, 15984, 16308, 16633, 16957, 17281, 17605, 17929, 18253, 18578, 18902, 19226, 19550, 19874, 20198, 20522, 20847, 21171, 21495, 21819, 22143, 22467, 22792, 23116, 23440, 23764]]
    #基础2 = 968.875
    #成长2 = 292.508
    攻击次数2 = 22
    # 结束爆发
    data3 = [int(i*1.211) for i in [0, 25721, 31685, 37650, 43614, 49579, 55543, 61508, 67472, 73436, 79401, 85365, 91330, 97294, 103259, 109223, 115187, 121152, 127116, 133081, 139045, 145009, 150974, 156938, 162903, 168867, 174832, 180796, 186760, 192725, 198689, 204654, 210618, 216583, 222547, 228511, 234476, 240440, 246405, 252369, 258333, 264298, 270262, 276227, 282191, 288156, 294120, 300084, 306049, 312013, 317978, 323942, 329907, 335871, 341835, 347800, 353764, 359729, 365693, 371657, 377622, 383586, 389551, 395515, 401480, 407444, 413408, 419373, 425337, 431302, 437266]]
    #基础3 = 17829.336 *1.1
    #成长3 = 5382.970 *1.1
    攻击次数3 = 1 * 1.1
    CD = 145.


class 技能16(职业主动技能):
    名称 = '次元思维聚爆'
    所在等级 = 60
    等级上限 = 40
    基础等级 = 23
    # 持续伤害
    data1 = [int(i*1.198) for i in [0, 563, 620, 676, 733, 790, 848, 905, 962, 1019, 1076, 1133, 1190, 1248, 1305, 1362, 1419, 1476, 1533, 1589, 1646, 1704, 1761, 1818, 1875, 1932, 1989, 2046, 2103, 2161, 2218, 2275, 2332, 2389, 2446, 2502, 2559, 2617, 2674, 2731, 2788, 2845, 2902, 2959, 3017, 3074, 3131, 3188, 3245, 3302, 3359, 3415, 3473, 3530, 3587, 3644, 3701, 3758, 3815, 3873, 3930, 3987, 4044, 4101, 4158, 4215, 4273, 4329, 4386, 4443, 4500]]
    #基础 = 451.063
    #成长 = 50.909
    攻击次数1 = 1
    # 爆发伤害
    data2 = [int(i*1.198) for i in [0, 18181, 20025, 21870, 23714, 25558, 27403, 29247, 31092, 32936, 34781, 36625, 38469, 40314, 42159, 44003, 45847, 47691, 49536, 51381, 53225, 55069, 56913, 58759, 60603, 62447, 64291, 66135, 67981, 69825, 71669, 73513, 75359, 77203, 79047, 80891, 82735, 84581, 86425, 88269, 90113, 91958, 93803, 95647, 97491, 99335, 101180, 103025, 104869, 106713, 108558, 110402, 112247, 114091, 115936, 117780, 119624, 121469, 123313, 125158, 127002, 128846, 130691, 132536, 134380, 136224, 138069, 139913, 141758, 143602, 145446]]
    #基础2 = 14580.815
    #成长2 = 1646.227
    攻击次数2 = 1
    CD = 30.
    是否有护石 = 1
    TP成长 = 0.10
    TP上限 = 5
    护石选项 = ['魔界', '圣痕']

    def 装备护石(self, x):
        if x == 0:
            self.攻击次数2 *= 1.25
            self.CD *= 0.9
        elif x == 1:
            self.攻击次数2 *= 1.25
            self.CD *= 0.9
            self.倍率 *= 1.08

    def 护石描述(self, x):
        if x == 0:
            temp = "<font color='#FF00FF'>次元扭曲学说</font>"
            temp += "<br><br><font color='#68D5ED'>"
            temp += "[次元 : 思维聚爆]<br>"
            temp += "没有敌人被[乖离 : 迷雾]附身的状态下也可以施放该技能 (在前方250px处发动)<br>"
            temp += "最后爆炸攻击力 +25%<br>"
            temp += "<br>-护石附加效果：<br>"
            temp += "施放过程中发动[次元边界]时， 不消耗次元石<br>"
            temp += "最后爆炸范围 +40%<br>"
            temp += "冷却时间 -10%"
        elif x == 1:
            temp = "<font color='#FF00FF'>次元扭曲学说</font>"
            temp += "<br><br><font color='#68D5ED'>"
            temp += "[次元 : 思维聚爆]<br>"
            temp += "没有敌人被[乖离 : 迷雾]附身的状态下也可以施放该技能 (在前方250px处发动)<br>"
            temp += "最后爆炸攻击力 +25%<br>"
            temp += "<br>-护石附加效果：<br>"
            temp += "施放过程中发动[次元边界]时， 不消耗次元石<br>"
            temp += "最后爆炸范围 +40%<br>"
            temp += "冷却时间 -10%"
            temp += "攻击力 +8%"


class 技能17(职业主动技能):
    名称 = '次元奇点'
    所在等级 = 75
    等级上限 = 40
    基础等级 = 16
    是否有护石 = 1
    CD = 40.
    护石选项 = ['圣痕']

    def 普通形态(self):
        self.data1 = [int(i*1.198) for i in [0, 27341, 30115, 32889, 35663, 38437, 41211, 43984, 46758, 49532, 52306, 55080, 57854, 60627, 63401, 66175, 68949, 71723, 74497, 77270, 80044, 82818, 85592, 88366, 91139, 93913, 96687, 99461, 102235, 105009, 107782, 110556, 113330, 116104, 118878, 121652, 124425, 127199, 129973, 132747, 135521]]
        self.data2 = [int(i*1.198) for i in [0, 31598, 34804, 38010, 41215, 44421, 47627, 50832, 54038, 57244, 60449, 63655, 66861, 70066, 73272, 76478, 79683, 82889, 86095, 89300, 92506, 95712, 98917, 102123, 105329, 108534, 111740, 114946, 118151, 121357, 124563, 127768, 130974, 134180, 137386, 140591, 143797, 147003, 150208, 153414, 156620]]
        self.攻击次数1 = 1
        self.攻击次数2 = 1

    def 强化形态(self):
        self.data1 = [int(i*1.198) for i in [0, 7989, 8799, 9610, 10420, 11231, 12041, 12852, 13662, 14473, 15283, 16094, 16904, 17715, 18525, 19336, 20146, 20957, 21767, 22578, 23388, 24199, 25009, 25820, 26630, 27441, 28251, 29062, 29872, 30683, 31493, 32304, 33114, 33925, 34735, 35546, 36356, 37167, 37977, 38788, 39598]]
        self.data2 = [int(i*1.198) for i in [0, 5326, 5866, 6406, 6947, 7487, 8027, 8568, 9108, 9648, 10189, 10729, 11269, 11810, 12350, 12890, 13431, 13971, 14511, 15052, 15592, 16132, 16673, 17213, 17753, 18294, 18834, 19374, 19915, 20455, 20995, 21536, 22076, 22616, 23157, 23697, 24237, 24778, 25318, 25858, 26399]]
        self.攻击次数1 = 4
        self.攻击次数2 = 4

    def 装备护石(self, x):
        if x == 0:
            self.CD *= 0.9
            self.倍率 *= 1.30

    def 护石无效化(self):
        self.CD /= 0.9
        self.倍率 /= 1.30

    def 护石描述(self, x):
        if x == 0:
            temp = "<font color='#FF00FF'>刻印咏唱</font>"
            temp += "<br><br><font color='#68D5ED'>"
            temp += "[次元 : 奇点]<br>"
            temp += "删除施放动作，立即施放<br>"
            temp += "普通使用时，不存在敌人时，能量领域也会生次元水晶<br>"
            temp += "攻击力 +12%<br>"
            temp += "<br>-护石附加效果：<br>"
            temp += "普通使用时，能量领域一定范围内的无法抓取敌人进入控制状态，持续2秒<br>"
            temp += "攻击力增加量额外增加 18%<br>"
            temp += "冷却时间 -10%"
        return temp


class 技能18(职业主动技能):
    名称 = '乖离禁锢'
    所在等级 = 70
    等级上限 = 40
    基础等级 = 18
    data1 = [int(i*1.273) for i in [0, 33420, 36811, 40202, 43592, 46983, 50373, 53764, 57154, 60545, 63935, 67326, 70716, 74107, 77497, 80888, 84279, 87669, 91060, 94450, 97841, 101231, 104622, 108012, 111403, 114793, 118184, 121574, 124965, 128355, 131746, 135137, 138527, 141918, 145308, 148699, 152089, 155480, 158870, 162261, 165651, 169042, 172432, 175823, 179214, 182604, 185995, 189385, 192776, 196166, 199557, 202947, 206338, 209728, 213119, 216509, 219900, 223290, 226681, 230072, 233462, 236853, 240243, 243634, 247024, 250415, 253805, 257196, 260586, 263977, 267367]]
    #基础 = 26846.910
    #成长 = 3031.118
    攻击次数1 = 1
    CD = 50.
    是否有护石 = 1
    TP成长 = 0.10
    TP上限 = 5
    护石选项 = ['魔界', '圣痕']

    def 装备护石(self, x):
        if x == 0:
            self.倍率 *= 1.07
        elif x == 1:
            self.倍率 *= 1.15

    def 护石描述(self, x):
        if x == 0:
            temp = "<font color='#FF00FF'>妥善安置</font>"
            temp += "<br><br><font color='#68D5ED'>"
            temp += "[乖离 : 禁锢]<br>"
            temp += "[乖离 : 禁锢]命中时初始化[乖离 : 魅魔之舞]的冷却时间<br>"
            temp += "<br>-护石附加效果：<br>"
            temp += "技能命中后强制中断并施放其他奈雅丽技能时， 束缚效果不消失<br>"
            temp += "攻击力 +7%"
        elif x == 1:
            temp = "<font color='#FF00FF'>妥善安置</font>"
            temp += "<br><br><font color='#68D5ED'>"
            temp += "[乖离 : 禁锢]<br>"
            temp += "[乖离 : 禁锢]命中时初始化[乖离 : 魅魔之舞]的冷却时间<br>"
            temp += "<br>-护石附加效果：<br>"
            temp += "技能命中后强制中断并施放其他奈雅丽技能时， 束缚效果不消失<br>"
            temp += "攻击力 +15%"
        return temp


class 技能19(职业主动技能):
    名称 = '乖离沉沦'
    所在等级 = 80
    等级上限 = 40
    基础等级 = 13
    是否有护石 = 1
    data1 = [int(i*1.197) for i in [0, 40782, 44919, 49056, 53194, 57331, 61468, 65606, 69743, 73880, 78017, 82155, 86292, 90429, 94567, 98704, 102841, 106979, 111116, 115253, 119391, 123528, 127665, 131803, 135940, 140077, 144214, 148352, 152489, 156626, 160764, 164901, 169038, 173176, 177313, 181450, 185588, 189725, 193862, 198000, 202137]]
    #基础 = 32790.618
    #成长 = 3702.340
    攻击次数1 = 1
    data2 = [int(i*1.197) for i in [0, 1359, 1497, 1634, 1772, 1910, 2048, 2186, 2324, 2462, 2600, 2738, 2875, 3013, 3151, 3289, 3427, 3565, 3703, 3841, 3979, 4116, 4254, 4392, 4530, 4668, 4806, 4944, 5082, 5220, 5357, 5495, 5633, 5771, 5909, 6047, 6185, 6323, 6461, 6598, 6736]]
    #基础2 = 1090.657
    #成长2 = 123.333
    攻击次数2 = 24
    CD = 45.
    护石选项 = ['圣痕']

    def 装备护石(self, x):
        if x == 0:
            self.倍率 *= 1.3

    def 护石描述(self, x):
        if x == 0:
            temp = "<font color='#FF00FF'>异界的断末魔</font>"
            temp += "<br><br><font color='#68D5ED'>"
            temp += "[乖离 : 沉沦]<br>"
            temp += "技能变更为彼端的存在爆炸后给予1次伤害<br>"
            temp += "变更后，攻击力为变更前总攻击力的110%<br>"
            temp += "召唤媒介时，向媒介对象刻下印章，即使脱离爆炸范围，也会造成伤害<br>"
            temp += "<br>-护石附加效果：<br>"
            temp += "攻击力增加量额外增加 +20%"
        return temp


class 技能20(职业主动技能):
    名称 = '禁断之盛宴'
    所在等级 = 85
    等级上限 = 40
    基础等级 = 5
    迷雾data = [int(i*1.212) for i in [0, 6623, 8158, 9694, 11230, 12766, 14302, 15837, 17373, 18909, 20445, 21980, 23516, 25052, 26588, 28124, 29659, 31195, 32731, 34267, 35803, 37338, 38874, 40410, 41946, 43481, 45017, 46553, 48089, 49625, 51160, 52696, 54232, 55768, 57304, 58839, 60375, 61911, 63447, 64982, 66518]]
    炮击data = [int(i*1.212) for i in [0, 5519, 6799, 8078, 9358, 10638, 11918, 13198, 14477, 15757, 17037, 18317, 19597, 20877, 22156, 23436, 24716, 25996, 27276, 28556, 29835, 31115, 32395, 33675, 34955, 36234, 37514, 38794, 40074, 41354, 42634, 43913, 45193, 46473, 47753, 49033, 50313, 51592, 52872, 54152, 55432]]
    普通炮击data = [int(i*1.212) for i in [0, 3294, 4058, 4822, 5587, 6351, 7115, 7879, 8643, 9407, 10171, 10935, 11699, 12463, 13227, 13991, 14755, 15519, 16283, 17047, 17811, 18575, 19339, 20103, 20867, 21631, 22395, 23159, 23923, 24687, 25451, 26215, 26980, 27744, 28508, 29272, 30036, 30800, 31564, 32328, 33092]]
    强化炮击data = [int(i*1.212) for i in [0, 3088, 3804, 4520, 5236, 5953, 6669, 7385, 8101, 8817, 9533, 10250, 10966, 11682, 12398, 13114, 13830, 14547, 15263, 15979, 16695, 17411, 18127, 18844, 19560, 20276, 20992, 21708, 22424, 23141, 23857, 24573, 25289, 26005, 26722, 27438, 28154, 28870, 29586, 30302, 31019]]
    终结伤害 = [int(i*1.212) for i in [0, 109511, 134905, 160299, 185693, 211087, 236481, 261875, 287269, 312663, 338058, 363452, 388846, 414240, 439634, 465028, 490422, 515816, 541210, 566604, 591998, 617392, 642786, 668180, 693574, 718968, 744362, 769756, 795150, 820544, 845938, 871332, 896726, 922120, 947514, 972908, 998302, 1023696, 1049090, 1074484, 1099878]]
    # 不强化
    # 10次迷雾伤害和13次炮击伤害
    攻击次数1 = 10
    攻击次数2 = 12
    # 强化后公共伤害部分
    # 18次强化炮击+1次终结伤害
    攻击次数4 = 18
    攻击次数5 = 1
    # 强化后可取消的部分
    攻击次数3 = 10  # 10次普通炮击

    def 等效百分比(self, 武器类型):
        if self.等级 == 0:
            return 0
        else:
            return int((self.攻击次数1 * self.迷雾data[self.等级] +
                        self.攻击次数2 * self.炮击data[self.等级] +
                        self.攻击次数3 * self.普通炮击data[self.等级] +
                        self.攻击次数4 * self.强化炮击data[self.等级] +
                        self.攻击次数5 * self.终结伤害[self.等级]) * (1 + self.TP成长 * self.TP等级) * self.倍率)
    CD = 180.


class 技能21(职业主动技能):
    名称 = '乖离：边缘之兽'
    所在等级 = 95
    等级上限 = 40
    学习间隔 = 2
    等级精通 = 10
    脱手 = 1
    技能施放时间 = 3
    基础等级 = min(int((等级 - 所在等级) / 学习间隔 + 1), 等级精通)
    CD = 60.0
    # 韩服面板粗略计算
    data1 = [int(i*1.197) for i in [0, 160074, 176313, 192553, 208792, 225032, 241271, 257511, 273750, 289989, 306229, 322468, 338708, 354947, 371187, 387426, 403665, 419905, 436144, 452384, 468623, 484863, 501102, 517341, 533581, 549820, 566060, 582299, 598539, 614778, 631018, 647257, 663496, 679736, 695975, 712215, 728454, 744694, 760933, 777172, 793412, 809651, 825891, 842130, 858370, 874609, 890848, 907088, 923327, 939567, 955806, 972046, 988285, 1004525, 1020764, 1037003, 1053243, 1069482, 1085722, 1101961, 1118201, 1134440, 1150679, 1166919, 1183158, 1199398, 1215637, 1231877, 1248116, 1264355, 1280595]]
    攻击次数1 = 1


class 技能22(被动技能):
    名称 = '古史记忆'
    所在等级 = 95
    等级上限 = 40
    学习间隔 = 3
    等级精通 = 30
    基础等级 = min(int((等级 - 所在等级) / 学习间隔 + 1), 等级精通)

    def 加成倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return round(1.18 + 0.02 * self.等级, 5)


class 技能23(职业主动技能):
    名称 = '未明·次元崩坏'
    所在等级 = 100
    等级上限 = 40
    学习间隔 = 5
    等级精通 = 30
    基础等级 = min(int((等级 - 所在等级) / 学习间隔 + 1), 等级精通)
    关联技能 = ['无']
    CD = 290.0
    脱手 = 0
    技能施放时间 = 6.5
    # 韩服面板粗略计算，忽略伤害结构
    data1 = [int(i*1.210) for i in [0, 62252, 76687, 91123, 105558, 119993, 134429, 148864, 163299, 177735, 192170, 206606, 221041, 235476, 249912, 264347, 278782, 293218, 307653, 322088, 336524, 350959, 365395, 379830, 394265, 408701, 423136, 437571, 452007, 466442, 480877, 495313, 509748, 524183, 538619, 553054, 567490, 581925, 596360, 610796, 625231, 639666, 654102, 668537, 682972, 697408, 711843, 726278, 740714, 755149, 769585, 784020, 798455, 812891, 827326, 841761, 856197, 870632, 885067, 899503, 913938, 928373, 942809, 957244, 971680, 986115, 1000550, 1014986, 1029421, 1043856, 1058292]]
    攻击次数1 = 1
    data2 = [int(i*1.210) for i in [0, 207508, 255626, 303743, 351861, 399979, 448097, 496215, 544333, 592451, 640568, 688686, 736804, 784922, 833040, 881158, 929276, 977394, 1025511, 1073629, 1121747, 1169865, 1217983, 1266101, 1314219, 1362336, 1410454, 1458572, 1506690, 1554808, 1602926, 1651044, 1699161, 1747279, 1795397, 1843515, 1891633, 1939751, 1987869, 2035986, 2084104, 2132222, 2180340, 2228458, 2276576, 2324694, 2372811, 2420929, 2469047, 2517165, 2565283, 2613401, 2661519, 2709636, 2757754, 2805872, 2853990, 2902108, 2950226, 2998344, 3046461, 3094579, 3142697, 3190815, 3238933, 3287051, 3335169, 3383286, 3431404, 3479522, 3527640]]
    攻击次数2 = 1
    data3 = [int(i*1.210) for i in [0, 36313, 44734, 53155, 61575, 69996, 78417, 86837, 95258, 103678, 112099, 120520, 128940, 137361, 145782, 154202, 162623, 171043, 179464, 187885, 196305, 204726, 213147, 221567, 229988, 238408, 246829, 255250, 263670, 272091, 280512, 288932, 297353, 305773, 314194, 322615, 331035, 339456, 347877, 356297, 364718, 373138, 381559, 389980, 398400, 406821, 415242, 423662, 432083, 440503, 448924, 457345, 465765, 474186, 482607, 491027, 499448, 507868, 516289, 524710, 533130, 541551, 549972, 558392, 566813, 575233, 583654, 592075, 600495, 608916, 617337]]
    攻击次数3 = 4
    def 加成倍率(self, 武器类型):
        return 0.0


技能列表 = []
i = 0
while i >= 0:
    try:
        exec('技能列表.append(技能' + str(i) + '())')
        i += 1
    except:
        i = -1

技能序号 = dict()
for i in range(len(技能列表)):
    技能序号[技能列表[i].名称] = i

知源·次元行者一觉序号 = 0
知源·次元行者二觉序号 = 0
知源·次元行者三觉序号 = 0
for i in 技能列表:
    if i.所在等级 == 50:
        知源·次元行者一觉序号 = 技能序号[i.名称]
    if i.所在等级 == 85:
        知源·次元行者二觉序号 = 技能序号[i.名称]
    if i.所在等级 == 100:
        知源·次元行者三觉序号 = 技能序号[i.名称]

知源·次元行者护石选项 = ['无']
for i in 技能列表:
    if i.是否有伤害 == 1 and i.是否有护石 == 1:
        知源·次元行者护石选项.append(i.名称)

知源·次元行者符文选项 = ['无']
for i in 技能列表:
    if i.所在等级 >= 20 and i.所在等级 <= 80 and i.所在等级 != 50 and i.是否有伤害 == 1:
        知源·次元行者符文选项.append(i.名称)


class 知源·次元行者角色属性(角色属性):
    实际名称 = '知源·次元行者'
    角色 = '魔法师(男)'
    职业 = '次元行者'

    武器选项 = ['扫把', '矛', '魔杖', '法杖', '棍棒']

    类型选择 = ['魔法固伤']

    类型 = '魔法固伤'
    防具类型 = '布甲'
    防具精通属性 = ['智力']

    主BUFF = 1.850

    远古记忆 = 0

    坠落形态 = 0
    离子束形态 = 0
    万花镜形态 = 0
    粒子风暴形态 = 0
    粒子波形态 = 0
    奇点形态 = 0
    聚爆形态 = 0
    装备奇点护石 = 0

    二觉形态 = 0

    def __init__(self):
        基础属性输入(self)
        self.技能栏 = deepcopy(技能列表)
        self.技能序号 = deepcopy(技能序号)

    def 被动倍率计算(self):
        super().被动倍率计算()

        if self.离子束形态 == 0:
            self.技能栏[self.技能序号['次元离子束']].攻击次数1 = 6
            self.技能栏[self.技能序号['次元离子束']].攻击次数2 = 0
        if self.离子束形态 == 1:
            self.技能栏[self.技能序号['次元离子束']].攻击次数1 = 0
            self.技能栏[self.技能序号['次元离子束']].攻击次数2 = 1

        if self.坠落形态 == 0:
            self.技能栏[self.技能序号['次元坠落']].攻击次数1 = 1
            self.技能栏[self.技能序号['次元坠落']].攻击次数2 = 1
            self.技能栏[self.技能序号['次元坠落']].攻击次数3 = 0
        if self.坠落形态 == 1:
            self.技能栏[self.技能序号['次元坠落']].攻击次数1 = 0
            self.技能栏[self.技能序号['次元坠落']].攻击次数2 = 0
            self.技能栏[self.技能序号['次元坠落']].攻击次数3 = 1

        if self.万花镜形态 == 0:
            self.技能栏[self.技能序号['次元万花镜']].攻击次数1 = 4
            self.技能栏[self.技能序号['次元万花镜']].攻击次数2 = 0
        if self.万花镜形态 == 1:
            self.技能栏[self.技能序号['次元万花镜']].攻击次数1 = 0
            self.技能栏[self.技能序号['次元万花镜']].攻击次数2 = 4

        if self.粒子风暴形态 == 1:
            self.技能栏[self.技能序号['次元粒子风暴']].攻击次数1 = 0
            self.技能栏[self.技能序号['次元粒子风暴']].攻击次数2 = 1
        if self.粒子风暴形态 == 0:
            self.技能栏[self.技能序号['次元粒子风暴']].攻击次数1 = 3
            self.技能栏[self.技能序号['次元粒子风暴']].攻击次数2 = 0

        if self.粒子波形态 == 0:
            self.技能栏[self.技能序号['次元粒子波']].攻击次数1 = 10
            self.技能栏[self.技能序号['次元粒子波']].攻击次数2 = 20
        if self.粒子波形态 == 1:
            self.技能栏[self.技能序号['次元粒子波']].攻击次数1 = 0
            self.技能栏[self.技能序号['次元粒子波']].攻击次数2 = 30

        if self.聚爆形态 == 0:
            self.技能栏[self.技能序号['次元思维聚爆']].攻击次数1 = 12
        if self.聚爆形态 == 1:
            self.技能栏[self.技能序号['次元思维聚爆']].攻击次数1 = 1

        if self.奇点形态 == 0:
            self.技能栏[self.技能序号['次元奇点']].普通形态()
        if self.奇点形态 == 1:
            self.技能栏[self.技能序号['次元奇点']].强化形态()

        if self.二觉形态 == 0:  # 不强化
            self.技能栏[self.技能序号['禁断之盛宴']].攻击次数1 = 10
            self.技能栏[self.技能序号['禁断之盛宴']].攻击次数2 = 12
            self.技能栏[self.技能序号['禁断之盛宴']].攻击次数3 = 0
            self.技能栏[self.技能序号['禁断之盛宴']].攻击次数4 = 0
            self.技能栏[self.技能序号['禁断之盛宴']].攻击次数5 = 0
        if self.二觉形态 == 1:  # 强化:取消后摇
            self.技能栏[self.技能序号['禁断之盛宴']].攻击次数1 = 0
            self.技能栏[self.技能序号['禁断之盛宴']].攻击次数2 = 0
            self.技能栏[self.技能序号['禁断之盛宴']].攻击次数3 = 0
            self.技能栏[self.技能序号['禁断之盛宴']].攻击次数4 = 17
            self.技能栏[self.技能序号['禁断之盛宴']].攻击次数5 = 1
        if self.二觉形态 == 2:  # 强化：不取消后摇
            self.技能栏[self.技能序号['禁断之盛宴']].攻击次数1 = 0
            self.技能栏[self.技能序号['禁断之盛宴']].攻击次数2 = 0
            self.技能栏[self.技能序号['禁断之盛宴']].攻击次数3 = 10
            self.技能栏[self.技能序号['禁断之盛宴']].攻击次数4 = 17
            self.技能栏[self.技能序号['禁断之盛宴']].攻击次数5 = 1


class 知源·次元行者(角色窗口):
    def 窗口属性输入(self):
        self.初始属性 = 知源·次元行者角色属性()
        self.角色属性A = 知源·次元行者角色属性()
        self.角色属性B = 知源·次元行者角色属性()
        self.一觉序号 = 知源·次元行者一觉序号
        self.二觉序号 = 知源·次元行者二觉序号
        self.三觉序号 = 知源·次元行者三觉序号
        self.护石选项 = deepcopy(知源·次元行者护石选项)
        self.符文选项 = deepcopy(知源·次元行者符文选项)

    def 护石判断(self):
        sign = 0
        sign2 = 0
        for x in range(3):
            if self.护石栏[x].currentText() == '次元粒子风暴':
                sign = 1
        if sign == 1:
            self.强化粒子风暴.setChecked(True)
            self.强化粒子风暴.setEnabled(False)
            self.强化粒子风暴.setStyleSheet(复选框样式)
        else:
            self.强化粒子风暴.setEnabled(True)
            self.强化粒子风暴.setStyleSheet(复选框样式)

    def 界面(self):
        super().界面()

        for i in range(3):
            self.护石栏[i].currentIndexChanged.connect(lambda state: self.护石判断())

        self.坠落触发箱子 = QCheckBox("坠落触发箱子", self.main_frame2)
        self.坠落触发箱子.setStyleSheet(复选框样式)
        self.坠落触发箱子.setChecked(False)
        self.坠落触发箱子.resize(120, 20)
        self.坠落触发箱子.move(325, 380)

        self.离子束强化 = QCheckBox("强化离子束", self.main_frame2)
        self.离子束强化.setStyleSheet(复选框样式)
        self.离子束强化.setChecked(False)
        self.离子束强化.resize(120, 20)
        self.离子束强化.move(325, 405)

        self.强化万花镜 = QCheckBox("强化万花镜", self.main_frame2)
        self.强化万花镜.setStyleSheet(复选框样式)
        self.强化万花镜.setChecked(True)
        self.强化万花镜.resize(120, 20)
        self.强化万花镜.move(325, 430)

        self.强化粒子风暴 = QCheckBox("强化粒子风暴", self.main_frame2)
        self.强化粒子风暴.setStyleSheet(复选框样式)
        self.强化粒子风暴.setChecked(True)
        self.强化粒子风暴.resize(120, 20)
        self.强化粒子风暴.move(325, 455)
        self.强化粒子风暴.setToolTip('选择粒子风暴护石时常驻为强化模式')

        self.强化粒子波 = QCheckBox("强化粒子波", self.main_frame2)
        self.强化粒子波.setStyleSheet(复选框样式)
        self.强化粒子波.setChecked(True)
        self.强化粒子波.resize(120, 20)
        self.强化粒子波.move(325, 480)

        self.聚爆是否瞬爆 = QCheckBox("聚爆取消持续伤害", self.main_frame2)
        self.聚爆是否瞬爆.setStyleSheet(复选框样式)
        self.聚爆是否瞬爆.setChecked(True)
        self.聚爆是否瞬爆.resize(120, 20)
        self.聚爆是否瞬爆.move(325, 505)
        self.聚爆是否瞬爆.setToolTip('是否按C取消直接引爆')

        self.强化奇点 = QCheckBox("强化奇点", self.main_frame2)
        self.强化奇点.setStyleSheet(复选框样式)
        self.强化奇点.setChecked(True)
        self.强化奇点.resize(120, 20)
        self.强化奇点.move(325, 530)
        self.强化奇点.setToolTip('')

        self.二觉形态选择 = MyQComboBox(self.main_frame2)
        self.二觉形态选择.addItem('不强化二觉')
        self.二觉形态选择.addItem('二觉:取消后摇')
        self.二觉形态选择.addItem('二觉:保留后摇')
        self.二觉形态选择.setCurrentIndex(2)
        self.二觉形态选择.resize(120, 20)
        self.二觉形态选择.move(325, 555)

        self.职业存档.append(('坠落触发箱子', self.坠落触发箱子, 0))
        self.职业存档.append(('离子束强化', self.离子束强化, 0))
        self.职业存档.append(('强化万花镜', self.强化万花镜, 0))
        self.职业存档.append(('强化粒子风暴', self.强化粒子风暴, 0))
        self.职业存档.append(('强化粒子波', self.强化粒子波, 0))
        self.职业存档.append(('聚爆是否瞬爆', self.聚爆是否瞬爆, 0))
        self.职业存档.append(('强化奇点', self.强化奇点, 0))
        self.职业存档.append(('二觉形态选择', self.二觉形态选择, 1))

    def 输入属性(self, 属性, x=0):
        super().输入属性(属性, x)

        if self.坠落触发箱子.isChecked():
            属性.坠落形态 = 1
        if self.离子束强化.isChecked():
            属性.离子束形态 = 1
        if self.强化万花镜.isChecked():
            属性.万花镜形态 = 1
        if self.强化粒子风暴.isChecked():
            属性.粒子风暴形态 = 1
        if self.强化奇点.isChecked():
            属性.奇点形态 = 1
        if self.强化粒子波.isChecked():
            属性.粒子波形态 = 1
        if self.聚爆是否瞬爆.isChecked():
            属性.聚爆形态 = 1
        属性.二觉形态 = self.二觉形态选择.currentIndex()

